public class Sort {

    public static int[] bubble(int[] a){
        int j = a.length - 1;
        do {
            int x = 0;
            for (int i = 0; i < j; i++) {
                if (a[i] > a[i + 1]) {
                    int t = a[i];
                    a[i] = a[i + 1];
                    a[i + 1] = t;
                    x = i;
                }
            }
            j = x;
        } while (j != 0);
        return a;
    }

    public static int[] selection(int[] a){
        for (int right = a.length-1 ;right>0;right--){
            int max = right;
            for (int i = 0;i<right;i++){
                if(a[i]>a[max])
                    max = i;
            }
            int temp = a[max];
            a[max] = a[right];
            a[right] = temp;

        }
        return a;
    }
    //插入排序
    public static void sort(int[] a) {
        for (int low = 1; low < a.length; low++) {
            // 将 low 位置的元素插入至 [0..low-1] 的已排序区域
            int t = a[low];
            int i = low - 1; // 已排序区域指针

            while (i >= 0 && t < a[i]) { // 没有找到插入位置
                a[i + 1] = a[i]; // 空出插入位置
                i--;
            }

            // 找到插入位置 如果i=low-1相当于已经插入
            if (i != low - 1) {
                a[i + 1] = t;
            }
        }
    }

}


